package com.lyxs916.utils;

import java.io.File;

import okhttp3.MediaType;
import okhttp3.RequestBody;


/**
 * 说明:请求参数的转换方法
 * 作者： 杨阳; 创建于：  2017-06-15  16:35
 */
public class RequestBodyUtils {
    /**
     * String文本 转成RequestBody
     *
     * @param value
     * @return
     */
    public static RequestBody getStringRequestBody(String value) {
        if (value == null) {
            return null;
        }
        return RequestBody.create(MediaType.parse("text/plain" + "; charset=utf-8"), value);
    }

    /**
     * 文件 转成RequestBody
     *
     * @param file
     * @return
     */
    public static RequestBody getFileRequestBody(File file) {
        if (!file.exists()) {
            return null;
        }
        return RequestBody.create(MediaType.parse("multipart/form-data"), file);
    }

    /**
     * 文件路径 转成RequestBody
     *
     * @param filePath
     * @return
     */
    public static RequestBody getFileRequestBody(String filePath) {
        File file = new File(filePath);
        return getFileRequestBody(file);
    }

    /**
     * 说明:构建上传文件的key
     * 作者： 杨阳; 创建于：  2017-06-15  18:37
     *
     * @Part("uploadFile\"; filename=\"test.jpg\"")
     */
    public static String getFileKey(String key, File file) {
        StringBuilder sb = new StringBuilder();
        String fileName = file.getName();

        if (key == null || key.length() == 0) {
            sb.append("file\";");
        } else {
            sb.append(key);
            sb.append("\"; ");
        }
        sb.append("filename=\"");
        if (fileName == null || fileName.length() == 0) {
            if (file.exists()) {
                fileName = file.getName();
            } else {
                fileName = "noFile";
            }
        }
        sb.append(fileName);
        return sb.toString();
    }

}
